package poo.exo1;

import java.io.*;
import java.util.*;

public class Vehicule  {
	private int identifiant;
	private String marque;
	private String nomModele;
	private String dateMiseEnCirculation ;
	private double kilometrage;
	private double prix;
	private int nbExemplaire;
	
	
	public Vehicule(int identifiant,String marque, String nomModele, String dateMiseEnCirculation,double kilometrage, double prix, int nbExemplaire) {
		this.identifiant =identifiant;
		this.marque= marque;
		this.nomModele=nomModele;
		this.dateMiseEnCirculation =dateMiseEnCirculation ;
		this.kilometrage = kilometrage;
		this.prix = prix;
		this.nbExemplaire = nbExemplaire;
	}
	
	@Override
	public String toString() {
		return "Vehicule : id=" + identifiant + "\n marque=" + marque
				+ ", Modele=" + nomModele + ", Mise en circulation="
				+ dateMiseEnCirculation + ", kilometre=" + kilometrage
				+ ", prix=" + prix + ", Exemplaire disponible=" + nbExemplaire ;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Vehicule other = (Vehicule) obj;
		if (dateMiseEnCirculation == null) {
			if (other.dateMiseEnCirculation != null)
				return false;
		} else if (!dateMiseEnCirculation.equals(other.dateMiseEnCirculation))
			return false;
		if (identifiant != other.identifiant)
			return false;
		if (Double.doubleToLongBits(kilometrage) != Double
				.doubleToLongBits(other.kilometrage))
			return false;
		if (marque == null) {
			if (other.marque != null)
				return false;
		} else if (!marque.equals(other.marque))
			return false;
		if (Double.doubleToLongBits(nbExemplaire) != Double
				.doubleToLongBits(other.nbExemplaire))
			return false;
		if (nomModele == null) {
			if (other.nomModele != null)
				return false;
		} else if (!nomModele.equals(other.nomModele))
			return false;
		if (Double.doubleToLongBits(prix) != Double
				.doubleToLongBits(other.prix))
			return false;
		return true;
	}
	
	public void readData(Scanner in)
	{
		String line = in.nextLine ( ) ;
		// e x p r e s s i on r a t i o n n e l l e pour par s e r chaque l i g n e s e l on l e se p a r a t eur j
		String [ ] tokens = line.split ( "\\| " ) ;
		 // l e nom se t rouv e dans l a premiere case du t a b l e a u
		int id = Integer.parseInt ( tokens [ 0 ] ) ;
		if( id==this.identifiant)
		{
			System.out.println(this.toString()) ;
		}
	}
	
	public int getIdentifiant() {
		return identifiant;
	}

	public void writeData(PrintWriter out)
	{
		
		out.printf("%d|%s|%s|%s|%g|%g|%d", this.identifiant,this.marque,this.nomModele,this.dateMiseEnCirculation,this.kilometrage,this.prix,this.nbExemplaire);
		out.println();
		
	}
	
	public void majExemplaire() throws MonException
	{
		if(this.nbExemplaire<=0)
		{
			throw new MonException ("Erreur : Plus de vehicule disponible !") ;
		}
		else
		{
			this.nbExemplaire--;
		}
	}


	
	
}
